#include<stdio.h>
#include<string.h>
#include<stdlib.h>

#define CAPACITY 1000

typedef struct Information
{
	char name[10];
	char gender[10];/*性别*/
	char birth[100];/*出生日期*/
	int startwork_year;/*参加工作日期*/
	int startwork_month;
	int startwork_day;
	int nowyear;/*现日期*/
	int nowmonth;
	int nowday;
	char section[10];/*所属部门*/
	char personnelcategory[10];/*人员类别*/
	char grade[10];/*技术等级*/
	char titles[10];/*技术职称*/
	char culturestandard[10];/*文化程度*/
	char nation[100];/*民族*/
	char nativeplace[10];/*籍贯*/
	char Address[100];/*现住地址*/
	
	int base;/*基本工资*/
	int job;/*岗位津贴*/
	int price;/*物价补贴*/
	int post;/*职务补贴*/
	int live;/*住房补贴*/
	int chummage;/*房租*/
	double sick;/*病假扣款*/
	int thing;/*事假扣费*/
	int free;/*旷工扣费*/
	int other;/*其他扣款*/
	int overtime;/*加班费用*/
	int night_differential;/*夜班费用*/
	double realmoney;/*实际工资*/
	double sickleave_coefficient;/*病假系数*/
	
	int work;/*出勤天数*/
	int injury;/*工伤天数*/
	int maternityleave;/*产假天数*/
	int ill;/*病假天数*/
	int free_work;/*旷工天数*/
	int busy_thing;/*事假天数*/
	int add_work;/*加班天数*/
	int night;/*夜班天数*/

}Information;

/*菜单*/
int Menu(Information s[], int n);/*主菜单*/
int Menu1(Information s[], int n);	/*插入菜单*/
int Menu2(Information s[], int n);	/*删除菜单*/
void Menu3(Information s[], int n);	/*统计菜单*/
void Menu4(Information s[], int n);	/*计算菜单*/
void Menu5(Information s[], int n);	/*展示菜单*/
int Menu6(Information s[], int n);/*输入菜单*/

void Add(Information s[], int n, int i);	/*输入数据*/
void Add_I(Information s[], int i);
void Add_M(Information s[], int i);
void Add_D(Information s[], int i);

void JudgeGender(Information s[],int i);/*判断输入的性别是否正确*/
void JudgeDay(Information s[], int n);/*判断日期是否输入正确*/



void Traversal(Information s[], int n);	/*遍历*/

void FindSname(Information s[], int n, char varname[]);	/*查询姓名*/

/*插入*/
int InsectFirst(Information s[], int n);	/*插入到第一个的前面*/
int InsectLast(Information s[], int n);	/*插入到最后一个的后面*/
int InsectAppoint(Information s[], int n);	/*插入到指定姓名的前面*/

/*删除*/
int RemoveFirst(Information s[], int n);	/*删除第一个人对应的信息*/
int RemoveAppoint(Information s[], int n);	/*删除指定姓名对应信息*/
int RemoveLast(Information s[], int n);	/*删除最后一个人对应的信息*/

void Change(Information s[], int n);	/*修改*/

/*统计*/
void Count_Gender(Information s[], int n);	/*按性别统计人数*/
void Count_section(Information s[], int n);	/*按所属部门统计人数*/
void Count_culturestandard(Information s[], int n);	/*按文化程度统计人数*/
void Count_nation(Information s[], int n);	/*按民族统计人数*/
void Count_add_work(Information s[], int n);	/*按加班时间统计人数*/
void Count_free_work(Information s[], int n);	/*按旷工时间统计人数*/

/*计算*/
void Calculate(Information s[], int n);		/*计算个人月工资*/
void Calculate_individual(Information s[], int n);/*计算个人月工资*/
void Calculate_section(Information s[], int n);	/*计算部门月工资*/
void Calculate_all_school(Information s[], int n);	/*计算全校月工资*/


/*展示*/
void Show_Calculate(Information s[], int n);	/*展示工资计算单*/
void Show_individual(Information s[], int n);	/*展示个人工资单*/
void Show_section(Information s[], int n);	/*展示部门工资单*/
void Show_All(Information s[], int n);	/*展示汇总表*/

int ReadInformation(Information s[], int n); /*读取*/
int WriteInformation(Information s[], int n);/*写入*/
